

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script type="text/javascript" src="helpman_topicinit.js"></script>

<title>Initial Code [Enterprise Architect User Guide]</title>

<meta name="keywords" content="Enterprise Architect, Sparx Systems, UML, Initial Code,Initial Code Operations Properties,Operation,Operation Properties, Initial Code,Operation Behavior, Initial Code,Forward Engineering,Forward Engineering Initial Code In Operations,Reverse Engineering,Reverse Engineering Initial Code In Operations,Synchronization,Synchronization Intial Code In Operations">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<link type="text/css" href="default.css" rel="stylesheet" />
<style type="text/css">
  A, A:Visited
  {
    color: #00F;
  }

  A:Active, A:Hover
  {
    color: #F00;
  }

  OL
  {
    margin: 5px 0 5px 48px;
  }

  UL
  {
    margin-bottom: 3px;
    margin-top: 0;
  }

  #nsr
  {
    background-color: #D4DFFF;
  }

  #nsr A
  {
    text-decoration: none;
  }

  #mainbody
  {
    padding: 8px;
  }

  .p_BodyText
  {
    padding: 5px 0;
  }
</style>



<style type="text/css" media="screen">
  BODY
  {
    background-color: #FFFFFF;
  }

  #nsr
  {
    padding: 6px 6px 0 6px;
    border-bottom: none;
    vertical-align: top;
    z-index: 2;
    visibility: visible;
    left: 0;
    top: 0;
    position: absolute;
  }

  #mainbody
  {
    left: 0;
    top: 0;
    margin: 0;
    position: absolute;
    padding: 10px;
    overflow: auto;
    height: 100%;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
  }
</style>

<style type="text/css" media="print">
  #nsr
  {
    visibility: none;
  }

  #mainbody
  {
    overflow: visible;
  }
</style>
<script type="text/javascript" language="JavaScript" src="nonscroll.js"></script>

</head>
<body scroll="no">

<div id="page">



        <div id="content">
          <div id="content-inner">
          



  
          <div id="nsr">
            <table border="0" cellspacing="0" cellpadding="4" width="100%">
              <tr valign="top">
                <td align="left">
  


                  <p class="p_Heading1"><span class="f_Heading1">Initial Code</span></p>



  
                </td>
                <td align="right">
                  <a href="introduction.htm" onmouseover="document.images.main.src='button_main_h.gif'" onmouseout="document.images.main.src='button_main.gif'">
                    <img name="main" src="button_main.gif" border=0 alt="Return to Introduction">
                  </a>&nbsp;
    
                  <a href="operationsdetail.htm" onmouseover="document.images.prev.src='button_prev_h.gif'" onmouseout="document.images.prev.src='button_prev.gif'">
                    <img name=prev src="button_prev.gif" border=0 alt="Previous page" />
                  </a>&nbsp;
    
    
    
                  <a href="operationconstraints.htm" onmouseover="document.images.next.src='button_next_h.gif'" onmouseout="document.images.next.src='button_next.gif'">
                    <img name=next src="button_next.gif" border=0 alt="Next page" />
                  </a>
    
    
                </td>
              </tr>
            </table>
          </div>
          <div id="mainbody">
  


                <p class="p_BodyText"><span class="f_BodyText">On the </span><span class="f_UIControl">Behavior</span><span class="f_BodyText"> tab of the </span><span class="f_UIControl">Operations</span><span class="f_BodyText"> dialog, you can use the </span><span class="f_MenuKeyField">Initial Code</span><span class="f_BodyText"> field to enter code to be inserted into an operation body when the operation is first generated to file. After this point, forward code generation and synchronization do not replace the existing operation code with the </span><span class="f_MenuKeyField">Initial Code</span><span class="f_BodyText"> field.</span></p>
<p class="p_BodyText"><span class="f_BodyText">By default, the </span><span class="f_MenuKeyField">Initial Code</span><span class="f_BodyText"> field also is not imported into the model during reverse engineering, but you can select to import the field by selecting the</span><span class="f_MenuKeyField"> Include method bodies in model when reverse engineering</span><span class="f_BodyText"> checkbox on the</span><span class="f_UIControl"> <a href="cgo_attributes.htm">Options</a> </span><span class="f_BodyText">dialog.</span></p>
<p class="p_BodyText"><span class="f_BodyText">This field is most useful when combined with <a href="umlpatterns.htm">UML Patterns</a>. Elements within a pattern often require the same stub code. Notice that the language specific patterns available from <a href="http://sparxsystems.com/resources/developers/uml_patterns.html" target="_blank" class="weblink">www.sparxsystems.com/resources/developers/uml_patterns.html</a> include initial code for some of the defined operations. This helps speed up the process of applying patterns from model to implementation. The </span><span class="f_MenuKeyField">Initial Code</span><span class="f_BodyText"> section is also useful for ensuring that the generated code is directly compilable.</span></p>
<p class="p_BodyText"><span class="f_BodyText">This example shows the contents of the </span><span class="f_MenuKeyField">Initial Code</span><span class="f_BodyText"> field for the </span><span class="f_BodyText" style="font-style: italic;">Instance()</span><span class="f_BodyText"> operation of the </span><span class="f_BodyText" style="font-style: italic;">Singleton</span><span class="f_BodyText"> element in the C# Singleton pattern:</span></p>
<p class="p_TextIndentedL2"><img src="initial%20code.png" width="464" height="506" border="0" alt="Initial Code"></p>




            </div>
          </div>
        </div>



</div>


</body>
</html>
